package com.zhongwang.business.module.system.dept;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;



/**
 * 
 *
 * @author China.sgl
 * @date 2019/12/6 08:42
 */
@Service
@SuppressWarnings("all")
public class DeptService {

    @Autowired
    private DeptMapper deptMapper;
//    @Autowired
//    private DeptRepository deptRepository;


    /**
     * 按条件查询所有部门
     *
     * @param dept 条件
     * @return List
     */
    public List<Dept> findDeptByCondition(Dept dept) {
        return deptMapper.findByCondition(dept);
    }

    /**
     * 修改部门
     *
     * @param Dept 部门信息
     * @return 影响行数
     */
    public Dept updateDept(Dept dept) {
//        dept.setStatus(STATUS_NORMAL);
//        return deptRepository.saveAndFlush(dept);
        return null;
    }

    /**
     * 按部门名称查询部门
     *
     * @param name 部门名称
     * @return 部门信息
     */
    public Dept findDeptByName(String name) {
        return deptMapper.findByName(name);
    }

    /**
     * 保存部门信息
     *
     * @param dept 部门信息
     * @return 影响行数
     */
    public Dept saveDept(Dept dept) {
//        dept.setStatus(STATUS_NORMAL);
//        return deptRepository.save(dept);
        return null;
    }

    /**
     * 查询用户所在部门
     *
     * @param id 用户 id
     * @return List
     */
    public List<Dept> findDeptCheckedByUserId(Integer id) {
        List<Dept> all = deptMapper.findByCondition(new Dept());
        Dept dept = deptMapper.findByUserId(id);
        if (null != dept) {
            for (Dept o : all) {
                if (o.getId().equals(dept.getId())) {
                    o.setCheckFlag(true);
                    break;
                }
            }
        }
        return all;
    }

    /**
     * 删除部门
     *
     * @param id 部门
     * @return 影响行数
     */
    public int delDept(Integer id) {
        return 0;
//        return deptMapper.updateStatusByIdWithRecursion(id, Constant.STATUS_DELETE);
    }

    /**
     * 查询顶级部门
     *
     * @return List
     */
    public List<Dept> findAllTopLevelDept() {
        return deptMapper.findAllTopLevelDept();
    }
}
